class TicketPresenter:
    """
    TicketPresenter 类用于将车票数据对象转换为字典形式，
    方便在不同的模块或系统中进行数据传输和展示。
    """
    def __init__(self, data):
        """
        初始化 TicketPresenter 实例。

        Args:
            data: 车票数据对象，该对象应包含车票的各种属性，
                  如车票 ID、座位号、座位类型、价格等。
        """
        self.data = data

    def as_dict(self):
        """
        将车票数据对象转换为字典形式。

        Returns:
            dict: 包含车票详细信息的字典，
                  键有 "id"、"seatNo"、"seatClass"、"price"、
                  "state"、"trainNo"、"from"、"orderNo"、"to"、
                  "date"、"fromTime" 和 "toTime"。
        """
        return {
            # 车票的唯一标识符
            "id": self.data.id,
            # 车票对应的座位编号
            "seatNo": self.data.seat_no,
            # 座位的类型，如一等座、二等座等
            "seatClass": self.data.seat_class,
            # 车票的价格
            "price": self.data.price,
            # 车票的状态，如已售出、未售出等
            "state": self.data.state,
            # 列车的编号
            "trainNo": self.data.train_no,
            # 出发站
            "from": self.data.from_station,
            # 关联的订单编号
            "orderNo": self.data.order.order_no,
            # 到达站
            "to": self.data.to_station,
            # 乘车日期
            "date": self.data.date,
            # 出发时间
            "fromTime": self.data.departure_time,
            # 到达时间
            "toTime": self.data.arrival_time,
        }